1. Field of the Invention
The present invention relates to the field of service oriented architecture (SOA) based computing solutions and more particularly to data access functions in an SOA based computing solution.
2. Description of the Related Art
As businesses and consumers become further interconnected through computer communications networks such as the global Internet and local intranets, the Web sites and companion computing applications which integrate interactions between businesses and consumers alike are becoming ever more complex. Addressing the explosion of business to business and business to consumer interactions on-line, information technologists increasingly focus on architecting and implementing complete business site solutions to reflect the entire life cycle of a business in lieu of integrating multiple, disparate applications which when combined reflect the business life cycle. Consequently, as modern commerce sites can be both large and distributed, business systems have been configured to deploy complete business systems in as seamless a fashion as possible.
It is now a common trend that traditional, stand-alone, commerce oriented applications are produced from one or more components which can be individually re-used to create business processes for different solutions. Each of these components can expose itself as a set of reusable business functions, also referred to as “services” comporting with computing standards for deploying enterprise level logic that facilitate an open service oriented architecture (SOA). An SOA essentially can be defined as a system where all exposed business and technical functions are in the form of reusable services. These reusable services can communicate with each other to engage either in simple data passing between two or more services, or in activity coordination by two or more services.
In a SOA, a client can invoke an operation on a service to perform a function and, optionally the client can receive a response. Invoked services are generally business functions configured to fulfill the needs of business customers, whether those customers are individual consumers or other businesses. The functions can be grouped into various services where each service can specialize in functions such as catalog management, shopping cart management, credit card transaction processing, sales tax computation and the like. By utilizing an SOA, services in a commerce solution can interoperate with other business processes in a larger commerce solution involving one or more separate business entities and one or more separate consumer entities.
Existing SOA design methodology provides step-by-step guidance for decomposing high-level business goals and processes into meaningful business activities, and for identifying business services. The decomposition of business functions into corresponding business services also aids in the identification of reusability across multiple business processes and provide higher level functions, where each function is aligned with the business activity. By comparison, information access tasks performed by information services are lower level functions for data access. Hence, business logic generally is not tied to a specific data source for information consumed by the business logic. By externalizing the information access logic, the implementation of the information service providing access to information consumed by business logic can change freely without affecting the operation of the business logic. Many existing information access tasks performed by stored procedures or federated queries can be exposed as “technical services”. As it is well-known in the art, technical services are the physical implementations that support various service patterns. These services implement both functional and non-functional requirements. As such, technical services include infrastructure services that help in operating the services and provide monitoring and management capabilities.
Many packaged applications and data management solutions provide out-of-the-box technical services. However, business services identified by the service oriented modeling and architecture methodology (SOMA) or other SOA design methodology, may or may not map directly one-to-one to a single information service that is pre-defined using a bottom up approach. Business service implementers or developers of other packaged solutions may exploit such pre-defined information services using an ad-hoc approach. However, in the absence of a well-defined SOA methodology that explicitly identifies required information services in meeting the data access needs of the business services using a step-by-step approach, most SOA based solutions and other applications frequently use ad hoc data access logic, such as hard-coded access to fixed data sources.
Existing service modeling defines only the external interface while the internal realization of the service focuses on aligning consuming outgoing interfaces with providing service endpoints. Recently, service modeling has been extended to include information consumed by such services as well as various non-functional requirements associated with information access. In the business entity life-cycle analysis (BELA) approach described by J. K. Strosinider et al. in the Association of Computing Machinery publication entitled MODEL-DRIVEN SYNTHESIS OF SOA SOLUTIONS, business activities and services are identified by first identifying business entities and the associated information model, and then identifying/analyzing changes to business entity by business activities. In both existing service modeling and the extended form embodied by the BELA approach, the information consumed by business services are identified as a by-product of modeling and identification of business services. However, neither approach includes identification of reusable technical services such as information services.